
# 添加任务依赖功能, 跨任务流依赖, 添加状态触发机制 ok
# 任务流完成后，会提示任务流完成，但是没有退出任务流线程

import threading
import time
import logging
import TaskScheduler4

def task1():
    logging.info("task1 执行任务 1")

def task2():
    logging.info("task2 执行任务 2")

def task3():
    logging.info("task3 执行任务 3")

def task4():
    logging.info("task4 执行任务 4")

# 定义触发条件函数
def trigger_condition1():
    # 模拟触发条件
    return some_flag1

def trigger_condition2():
    # 模拟触发条件
    return some_flag2

# 使用示例
if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO)
    # logging.basicConfig(level=logging.DEBUG)

    some_flag1 = False
    some_flag2 = False

    scheduler = TaskScheduler4.TaskScheduler()

    # 添加任务流
    scheduler.add_task_flow("flow1", [task1, task2], dependencies={"task2": ["task1", "task3"]}, trigger_condition=trigger_condition1)
    scheduler.add_task_flow("flow2", [task3, task4], dependencies={"task4": ["task3"]}, trigger_condition=trigger_condition2)

    # 启动调度器
    scheduler.set_trigger_interval_time(1)
    scheduler.start()

    # 模拟条件变为 True
    time.sleep(2)  # 模拟等待时间
    scheduler.set_ready()

    # 动态设置触发条件
    time.sleep(2)
    some_flag1 = True

    time.sleep(2)
    some_flag2 = True

    # 等待一段时间，确保任务流执行完成
    time.sleep(10)